/*********************////////////////////////Funciones///////////****************************
var funcEditCmpsForm=function ()
{             
        Ext.getCmp("formCrudUsuario").getForm().submit({
                url:'usuario/editarDatos',
                method:'POST',
                clientValidation: false,
                success: function(form,action)
                        {   var obj = Ext.JSON.decode(action.response.responseText);
                            if(obj.success)
                            {            
                                    Ext.example.msg('Editar Usuario', 'Se han editado los datos con éxito.');
                                    ventanaFormUsuario.hide();                                    
                                    Ext.getCmp("gridUsuarios").getStore().load();            
                                    formCrudUsuario.getForm().reset();                                 
                            }},
                failure: function(form,action){ Ext.example.msg('Editar Usuario', 'Ocurrió un error al editar los datos.');}
       });
}

var funcionNuevoUsuario =function ()
{        
        Ext.getCmp("formCrudUsuario").getForm().submit({
            url:'usuario/registrar',
            method:'POST',
            clientValidation: false,
            
            success: function(form,action)
                    {
                            var obj = Ext.JSON.decode(action.response.responseText);
                            if(obj.success)
                            {            
                                    Ext.example.msg('Registro Usuario', 'Se registró el usuario con éxito.');
                                    ventanaFormUsuario.hide();                                    
                                    Ext.getCmp("gridUsuarios").getStore().load();   
                                    formCrudUsuario.loadRecord(formInfoUsuario.getRecord());
                                    formCrudUsuario.getForm().reset(); 
                            }
                    },
            failure: function(form,action)
                    {
                        Ext.example.msg('Registro Usuario', 'Error al registrar el usuario.');
                    }            
        });
}
/*
var panelGridCrud=new Ext.panel.Panel({
	region:'center',
	id: 'panelGridCrud',
	border: 0
	//title: 'Gestionar Usuario',
	
	});*/
	
var comboRolUsuario= new Ext.form.ComboBox({
        // all of your config options
            fieldLabel: 'Rol de Usuario',
            id:'comboRolUsuario',   
            name:'cmpRolUsuario',
        triggerAction: 'all',
        lazyRender:true,
        editable:false,    
        hiddenName:'rolUsuario',
        valueField: 'idRol',           
        store:  new Ext.data.Store({autoLoad: true,
                            fields:[{name:'idRol',type:'string'},{name:'nombreRol',type:'string'}],
                            proxy: {type: 'ajax',
                                    url: 'usuario/listRolesUsu',  // url that will load data with respect to start and limit params        
                                    reader: {
                                          type: 'json',
                                          root: 'items',
                                          totalProperty: 'total'}}
            }),

            displayField: 'nombreRol',
            /*listeners:{
                      select: function(combo,record,index)
                            {
                              alert(this.getValue());
                            }
                      },*/
            mode: 'remote',
            emptyText: 'Seleccione un Rol',            
            allowBlank:false
            });       
            
var formCrudUsuario= new Ext.form.Panel({	
                 fieldDefaults: {msgTarget: 'side'},
                autoHeight: true,
		frame:true,
		autoWidth:true,
                id:'formCrudUsuario',
		layout:'anchor',
		defaults:{anchor:'100%', xtype:'textfield'},          
		
		items:[{xtype:'fieldset',
                        
                        id:'fieldsetCrudUsuario',
			title:'Ingrese Datos del Usuario',
			//height:'100%',
                        width:'100%',
			autoHeight: true,
			defaults:{ xtype:'textfield',labelWidth:150},
			
			items: [{xtype:'hiddenfield', name:'idUsuario'},
                                {fieldLabel:'Nombres', name:'nombresUsuario',allowBlank: false},
				{fieldLabel:'Apellidos',name:'apellidosUsuario',allowBlank: false},
				{fieldLabel:'No. Identificación',name:'identifUsuario',allowBlank: false,maskRe: /[0-9]/i},
				{xtype:'datefield', fieldLabel:'Edad',name:'fechaNcmtoUsuario'},
				{fieldLabel:'Nombre de Usuario',name:'logginUsuario',allowBlank: false},
				{fieldLabel:'Nacionalidad',name:'cmpNacionalUsuario'},			
				{fieldLabel:'Telefono',name:'telUsuario',maskRe: /[0-9]/i},
				{fieldLabel:'E-mail',name:'e-mailUsuario',allowBlank: false},
                                {xtype:'hiddenfield', name:'idUsuarioPass'},
                                {
                                    fieldLabel:'Contraseña',
                                    name:'password1',                
                                    allowBlank: false,
                                    inputType: 'password'
                                },
                                {
                                    fieldLabel:'Confirmar Contraseña',
                                     allowBlank: false,
                                     inputType: 'password',
                                     validator: function(value) {
                                    var password1 = this.previousSibling('[name=password1]');
                                    return (value === password1.getValue()) ? true : 'Las contraseñas no coinciden'
                            }},
				{fieldLabel:'Estado',allowBlank: false,name:'estadoUsuario'},
                                comboRolUsuario
                               ] 
			}],
                    buttons:[{text:'Registrar',
                              id:'butRegUsuario',
                              handler: funcionNuevoUsuario
                            },{
                                text:'Guardar Cambios',                                
                                id:'butEditUsuario',
                                handler: funcEditCmpsForm
                            },{text:'Cancelar',
                                handler: function()
                                {ventanaFormUsuario.hide();
                                 formCrudUsuario.getForm().reset();
                                }
                            }]
	});        

var formInfoUsuario= new Ext.form.Panel({
               // autoHeight:true,
               region: 'east',
               width: '48%',
		frame:true,
		//width:'100%',
                id:'formInfoUsuario',
		layout:'anchor',
		defaults:{anchor:'100%'},
                fieldDefaults: {msgTarget: 'side'},
		height:'100%',
		items:[{xtype:'fieldset',
                        id:'fieldsetInfoUsuario',
			title:'Datos del Usuario',
			height:'100%',
                        autoWidth: true,
			defaults:{ xtype:'displayfield',labelAlign:'left',labelWidth:'110',labelStyle:'font-weight:bold;'},
			
			items: [{xtype:'hiddenfield', name:'idUsuario'},
                                {fieldLabel:'Nombres', name:'nombresUsuario'},
				{fieldLabel:'Apellidos',name:'apellidosUsuario'},
				{fieldLabel:'No. Identificación',name:'identifUsuario'},
				{fieldLabel:'Edad',name:'fechaNcmtoUsuario'},
				{fieldLabel:'Nombre de Usuario',labelWidth:120,name:'logginUsuario'},
				{fieldLabel:'Nacionalidad',name:'cmpNacionalUsuario'},			
				{fieldLabel:'Telefono',name:'telUsuario'},
				{fieldLabel:'E-mail',name:'e-mailUsuario'},
				{fieldLabel:'Estado',name:'estadoUsuario'},
                                {fieldLabel:'Rol de Usuario',name:'cmpRolUsuario'},
                                {   
                                    xtype:'button',
                                    text: 'Cambiar Contraseña',
                                    scope: this,
                                    id: 'butCambiarContrasenia',
                                    handler: function()
                                            { 
                                                cambiarContrasenia(formInfoUsuario.getForm().findField("idUsuario").getValue(),"usuario");
                                            }
                                }
                               ] 
			}]    
});
   
        
if(rolUsuario=="Administrador")
 {
     formInfoUsuario.addDocked({xtype:'toolbar',dock:'bottom',items:['->',{
                    icon: '../../../js/extjs/ext-4.0.1/examples/shared/icons/fam/user-add.gif',
                   // cls: 'x-btn-icon',
                    id:'tbutRegUsuario',
                    text: 'Registrar Usuario',
                    scope: this,
                    
                    handler: function()
                             { Ext.getCmp("fieldsetCrudUsuario").setTitle("Datos de Nuevo Usuario");
                               ventanaFormUsuario.setTitle("Registrar Usuario");
                               ventanaFormUsuario.show();                               
                               Ext.getCmp("butEditUsuario").hide();
                               Ext.getCmp("butRegUsuario").show();
                             }
                },{xtype:'tbseparator', id:'tbseparator'},{
                    //icon: 'icon-add',
                    text: 'Editar Datos',
                    scope: this,
                    
                    handler: function()
                            { formCrudUsuario.loadRecord(formInfoUsuario.getRecord());
                                Ext.getCmp("fieldsetCrudUsuario").setTitle("Editar Datos de Usuario");
                                ventanaFormUsuario.setTitle("Editar Datos");
                                ventanaFormUsuario.show();                               
                               Ext.getCmp("butEditUsuario").show();
                               Ext.getCmp("butRegUsuario").hide();
                            }
                }
                ]});
 
    Ext.getCmp("butCambiarContrasenia").show();
 }
 else{Ext.getCmp("butCambiarContrasenia").hide();}
 /*       
var panelForm=new Ext.panel.Panel({
	region: 'east',
	id: 'panelFormCrud',
	border: 0,
	width: '48%',
        items:[formInfoUsuario]
	});


var panelTabCrud= new Ext.panel.Panel({
	layout: 'border',
	//title: 'Gestionar Usuario',
	id:'panelTabCrud',
        border: 0,
	width: '100%',
	height: '100%',
	items:[panelGridCrud, panelForm]

});*/

var ventanaFormUsuario = new Ext.Window({
	id     : 'ventanaFormUsuario',
        title:'Registrar Usuario',
	modal: true,
	closable:false,
	draggable: false, 
	autoHeight: true,
        animateTarget:'tbseparator',
	autoWidth  : true,
	items  : [formCrudUsuario]
});


